package com.open.base.service;


import com.open.base.model.GeneralConfig;
import com.open.common.model.Page;
import com.open.base.model.vo.SysConfigVo;

import java.util.List;

/**
 * 通用配置
 *
 * @author 大树03
 * @date 2025-03-31 21:00
 */
public interface IGeneralConfigService {

    /**
     * 添加对象
     * @param model
     * @return boolean
     * @date 2025-03-31 21:00
     */
    Boolean save(GeneralConfig model) ;

    /**
     * 修改对象
     * @param model
     * @return boolean
     * @date 2025-03-31 21:00
     */
    Boolean update(GeneralConfig model) ;

    /***
     * 根据主键查询
     *
     * @param pk 主键
     * @return UserConfig
     */
    GeneralConfig findByPk(Long pk) ;

    /**
     * 根据条件查询记录数
     *
     * @param item
     * @return Integer
     */
    Integer countByModel(GeneralConfig item) ;

    /**
     * 分页查询
     *
     * @param page
     * @param model
     * @return
     */
    Page<SysConfigVo> findPage(Page<GeneralConfig> page, GeneralConfig model);

    /**
     * 根据条件查询
     *
     * @param model
     * @return
     */
    List<GeneralConfig> findByModel(GeneralConfig model);

    /**
     * 根据主键删除
     *
     * @param pks
     * @return boolean
     */
    Boolean remove(List<Long> pks) ;

    // 获取配置信息
    GeneralConfig findConfig(Long userId, String type);

    String getSystemConfig(String type);

    List<String> getSystemConfigs(List<String> types);

    Boolean batchUpdate(List<GeneralConfig> models);
}